<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>1417. 重新格式化字符串</title>
  </head>
  <body>
    <script>
      //     给你一个混合了数字和字母的字符串 s，其中的字母均为小写英文字母。

      // 请你将该字符串重新格式化，使得任意两个相邻字符的类型都不同。也就是说，字母后面应该跟着数字，而数字后面应该跟着字母。

      // 请你返回 重新格式化后 的字符串；如果无法按要求重新格式化，则返回一个 空字符串 。

      //

      // 示例 1：

      // 输入：s = "a0b1c2"
      // 输出："0a1b2c"
      // 解释："0a1b2c" 中任意两个相邻字符的类型都不同。 "a0b1c2", "0a1b2c", "0c2a1b" 也是满足题目要求的答案。
      // 示例 2：

      // 输入：s = "leetcode"
      // 输出：""
      // 解释："leetcode" 中只有字母，所以无法满足重新格式化的条件。
      // 示例 3：

      // 输入：s = "1229857369"
      // 输出：""
      // 解释："1229857369" 中只有数字，所以无法满足重新格式化的条件。

      // 来源：力扣（LeetCode）
      // 链接：https://leetcode.cn/problems/reformat-the-string
      // 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

      /**
       * @param {string} s
       * @return {string}
       */
      var reformat = function (s) {
        const len = s.length
        let numArr = []
        let letterArr = []
        let res = ''
        for (let i = 0; i < len; i++) {
          if (/^[a-zA-Z]+$/.test(s[i])) {
            letterArr.push(s[i])
          }
          if (/^[0-9]+$/.test(s[i])) {
            numArr.push(s[i])
          }
        }
        if (Math.abs(numArr.length - letterArr.length) > 1) {
          return ''
        }
        if (numArr.length === letterArr.length) {
          for (let i = 0; i < numArr.length; i++) {
            res += numArr[i] + letterArr[i]
          }
        }
        if (numArr.length > letterArr.length) {
          res = numArr[0]
          for (let i = 0; i < letterArr.length; i++) {
            res += letterArr[i] + numArr[i + 1]
          }
        }
        if (numArr.length < letterArr.length) {
          res = letterArr[0]
          for (let i = 0; i < numArr.length; i++) {
            res += numArr[i] + letterArr[i + 1]
          }
        }
        return res
      }

      console.log(reformat('a0b1c2'))
    </script>
  </body>
</html>
